Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains some experimental work I've been doing to allow more precise user control over property testing. The basic idea is to make the random value generation process more programmable (taking inspiration from things like Hedgehog) by exposing a
Gen
monad.Design considerations:
:check
and:prove
can currently be used uniformly on functions with appropriate types.newtype
types to be automatically generated for:check
and:prove
, etc. This facility would provide a replacement for that capability that users could directly implement. If we ever implement user-definable instances for newtypes, this would further let them participate directly in the autogeneration mechanism by implementing theGenerate
class.At this point, I'm seeking input about whether it is useful to continue working in this direction and thoughts about the overall design.